from django.db import models


# user表,必须继承models.Model
class User(models.Model):
    # 表名默认是:  app名称_类名
    class Meta:  # 定义元选项
        db_table = 'user'  # 表名
        # verbose_name = "用户数据"  # admin管理界面显示信息
        #index_together = ()
        unique_together = (('name'),) # 唯一索引,必须是list
    # 表字段 ,django会自动指定AutoField自增长的id主键
    name = models.CharField(max_length=50)
    age = models.IntegerField(2)
    # 还有 DateField   TimeField
    writetime = models.DateTimeField(auto_now_add=True)  # 创建对象时间
# 订单: 一对多  一个user有多个订单
class Order(models.Model):
    class Meta:
        db_table = 'order'
    name = models.CharField(max_length=50)
    # django会自动将表中字段名改为 user_id
    user = models.ForeignKey(to='User', to_field='id', on_delete=models.CASCADE, related_name="order_list")
# 多对多: 一个用户属于多个角色,  一个角色有多个用户
class Role(models.Model):
    class Meta:
        db_table = 'role'
    name = models.CharField(max_length=50)
    # 多对多关联,会创建一张第三方表,关联user和role
    users = models.ManyToManyField(User)
